package utils

import (
	"os"
	"path/filepath"
	"strings"
)

// GetOutputPath 根据输入路径生成输出路径
func GetOutputPath(inputPath string) string {
	dir := filepath.Dir(inputPath)
	base := filepath.Base(inputPath)
	name := strings.TrimSuffix(base, filepath.Ext(base))
	return filepath.Join(dir, name+".pdf")
}

// GetFileSize 获取文件大小
func GetFileSize(path string) (int64, error) {
	info, err := os.Stat(path)
	if err != nil {
		return 0, err
	}
	return info.Size(), nil
}

// CalculateCompressionRatio 计算压缩比
func CalculateCompressionRatio(inputSize, outputSize int64) float64 {
	if inputSize == 0 {
		return 0
	}
	return float64(outputSize) / float64(inputSize)
}

// EnsureDirectory 确保目录存在
func EnsureDirectory(path string) error {
	return os.MkdirAll(path, os.ModePerm)
}

// IsEPUBFile 检查文件是否为EPUB文件
func IsEPUBFile(path string) bool {
	return strings.HasSuffix(strings.ToLower(path), ".epub")
}
